package com.hqully.labmanage.mapper;

import com.hqully.labmanage.domain.entity.OpeningHour;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 针对数据库表[openingHour]的操作
 * </p>
 *
 * @author hqully <br>
 * @entity {@link OpeningHour}
 * @date 2022-10-12 15:41:13 <br>
 * @version 1.0
 */
@Mapper
public interface OpeningHourMapper {


    /**
     * <p>
     * 根据实验室id查询开放时间列表
     * </p>
     *
     * @param labId 实验室id
     * @return {@link List<OpeningHour>} 开放时间列表
     * @date 2022-10-12 15:41:13 <br>
     * @author hqully <br>
     */
    List<OpeningHour> listOpeningHourByLabId(@Param("labId") String labId);
    /**
     * <p>
     * 根据[openingHourDTO]的参数条件查询开放时间列表
     * </p>
     *
     * @param openingHour 查询参数
     * @return {@link List<OpeningHour>} 开放时间DTO列表
     * @date 2022-10-12 15:41:13 <br>
     * @author hqully <br>
     */
    List<OpeningHour> listOpeningHours(OpeningHour openingHour);

    /**
     * <p>
     * 添加开放时间
     * </p>
     *
     * @param openingHour 开放时间实体类
     * @return {@link int}
     * @date 2022-10-12 15:41:13 <br>
     * @author hqully <br>
     */
    int addOpeningHour(OpeningHour openingHour);


    /**
     * <p>
     * 批量添加实验室开放时间
     * </p>
     *
     * @param openingSchedule 开放时间表(开放时间列表)
     * @return {@link int}
     * @date 2022-10-12 15:41:13 <br>
     * @author hqully <br>
     */
    int batchInsertOrUpdateOpeningHour(@Param("openingSchedule") List<OpeningHour> openingSchedule);

    /**
     * <p>
     * 更新开放时间
     * </p>
     *
     * @param openingHour 开放时间
     * @return {@link int}
     * @date 2022-10-12 15:41:13 <br>
     * @author hqully <br>
     */
    int updateOpeningHour(OpeningHour openingHour);

    /**
     * <p>
     * 通过[id]删除开放时间
     * </p>
     *
     * @param id 开放时间id
     * @return {@link int}
     * @date 2022-10-12 15:41:13 <br>
     * @author hqully <br>
     */
    int deleteOpeningHourById(@Param("id") Integer id);

}

